/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Simulacion.Controlador;

import com.dp1.pucp.Modelo.Algoritmos.EmpleadoAlgoritmo;
import com.dp1.pucp.Modelo.Algoritmos.LeeDatos;
import com.dp1.pucp.Modelo.Clases.Almacen;
import com.dp1.pucp.Modelo.Clases.Cliente;
import com.dp1.pucp.Modelo.Clases.Distrito;
import com.dp1.pucp.Modelo.Clases.Empleado;
import com.dp1.pucp.Modelo.Clases.Presentacion;
import com.dp1.pucp.Modelo.Clases.Productofinal;
import com.dp1.pucp.Modelo.Clases.Tipocliente;
import com.dp1.pucp.Modelo.Clases.Tipodocumento;
import com.dp1.pucp.Modelo.Clases.Tipoproducto;
import java.io.File;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author ubuntu64
 */
public class CargarDatosOperarios {
    
    public ArrayList<Empleado> LeeEmpleados(String nombreArchivo){
        ArrayList<Empleado> emp = new ArrayList<>();
        
        File ArchivoEmpleados = new File(nombreArchivo);
        
        if(ArchivoEmpleados!=null){
            try {
                Scanner sc = new Scanner(ArchivoEmpleados);
                
                String linea = "";
                
                
                while (sc.hasNextLine()){
                    
                    linea = sc.nextLine();
                    String[] partes = linea.split("/");
                    String id = partes[0];
                    String codigo = partes[1];
                    String nombre = partes[2];
                    String apPaterno = partes[3];
                    String apMaterno = partes[4];
                    String correo = partes[5];
                    String telfono = partes[6];
                    String celular = partes[7];
                    String dni = partes[8];
                    String dir = partes[9];
                    String fecNac = partes[10];
                    String sueldo = partes[11];
                    String turno = partes[12];
                    String estado = partes[13];
                    String tipoEmp = partes[14];
                    String idDistrito = partes[15];
                    String idTipo = partes[16];
                    
                    Empleado e = new Empleado();
                    //e.setIdempleado(Integer.valueOf(id));
                    e.setCodigo(codigo);
                    e.setNombre(nombre);
                    e.setApPaterno(apPaterno);
                    e.setApMaterno(apMaterno);
                    e.setCelular(celular);
                    e.setCorreo(correo);
                    e.setTelefono(telfono);
                    e.setNumdocumento(dni);
                    e.setDireccion(dir);
                   /* SimpleDateFormat formatoFecha = new SimpleDateFormat("yyyy-MM-dd");
                    Date nuevaFecha = null;
                    try {
                        nuevaFecha = formatoFecha.parse(fecNac);
                    } catch (Exception ex) {
                        ex.toString();
                    }
                    */
                    Date nuevaFecha= new Date();
                    try {
                        nuevaFecha = new SimpleDateFormat("yyyy-MM-dd").parse(fecNac);
                    } catch (ParseException ex) {
                        Logger.getLogger(CargarDatosOperarios.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    e.setFechanac(nuevaFecha);
                    e.setSueldo(Float.valueOf(sueldo));
                    e.setTurnoTrabajo(Integer.valueOf(turno));
                    e.setEstado(Integer.valueOf(estado));
                    e.setTipoempleado(Integer.valueOf(tipoEmp));
                    Distrito d = new Distrito();
                    d.setIddistrito(Integer.valueOf(idDistrito));
                    e.setDistrito(d);
                    Tipodocumento td = new Tipodocumento();
                    td.setIdtipodocumento(Integer.valueOf(idTipo));
                    e.setTipodocumento(td);
                    emp.add(e);
                }
                
            } catch (FileNotFoundException ex) {
                Logger.getLogger(LeeDatos.class.getName()).log(Level.SEVERE, null, ex);
            }
           
            
        }
        
        return emp;
    }   
    
    public ArrayList<Productofinal> LeeProductos(String nombreArchivo){
        ArrayList<Productofinal> pro = new ArrayList<>();
        
        File ArchivoProductos = new File(nombreArchivo);
        
        if(ArchivoProductos!=null){
            try {
                Scanner sc = new Scanner(ArchivoProductos);
                
                String linea = "";
                
                
                while (sc.hasNextLine()){
                    
                    linea = sc.nextLine();
                    String[] partes = linea.split("/");
                    String codigo = partes[0];
                    String descripcion = partes[1];
                    String estado = partes[2];
                    String cantidad = partes[3];
                    String fecCaducidad = partes[4];
                    String lote = partes[5];
                    String idPresentacion = partes[6];
                    String idTipoProducto = partes[7];
                    String idAlmacen = partes[8];
                    
                    
                    Productofinal p = new Productofinal();
                    p.setCodigo(codigo);
                    p.setDescripcion(descripcion);
                    p.setEstado(Integer.parseInt(estado));
                    p.setCantidad(Float.parseFloat(cantidad));
                    
                    Date nuevaFecha= new Date();
                    try {
                        nuevaFecha = new SimpleDateFormat("yyyy-MM-dd").parse(fecCaducidad);
                    } catch (ParseException ex) {
                        Logger.getLogger(CargarDatosOperarios.class.getName()).log(Level.SEVERE, null, ex);
                    }                    
                    p.setFechaCaducidad(nuevaFecha);
                    p.setLote(lote);
                    
                    Presentacion presentacion = new Presentacion();
                    presentacion.setIdpresentacion(Integer.valueOf(idPresentacion));
                    p.setPresentacion(presentacion);
                    Tipoproducto tp = new Tipoproducto();
                    tp.setIdtipoproducto(Integer.valueOf(idTipoProducto));
                    p.setTipoproducto(tp);
                    Almacen almac = new Almacen();
                    almac.setIdalmacen(Integer.valueOf(idAlmacen));
                    p.setAlmacen(almac);
                    pro.add(p);
                }
                
            } catch (FileNotFoundException ex) {
                Logger.getLogger(LeeDatos.class.getName()).log(Level.SEVERE, null, ex);
            }
           
            
        }
        
        return pro;
    }
    
    public ArrayList<Cliente> LeeClientes(String nombreArchivo){
        ArrayList<Cliente> cli = new ArrayList<>();
        
        File ArchivoClientes = new File(nombreArchivo);
        
        if(ArchivoClientes!=null){
            try {
                Scanner sc = new Scanner(ArchivoClientes);
                
                String linea = "";
                
                
                while (sc.hasNextLine()){
                    
                    linea = sc.nextLine();
                    String[] partes = linea.split("/");
                    String razonsocial = partes[0];
                    String ruc = partes[1];
                    String paginaweb = partes[2];
                    String telefono = partes[3];
                    String dirFiscal = partes[4];
                    String estado = partes[5];
                    String idDistrito = partes[6];
                    String idTipoCliente = partes[7];
                    
                    
                    Cliente c = new Cliente();
                    c.setRazonsocial(razonsocial);
                    c.setRuc(ruc);
                    c.setPaginaweb(paginaweb);
                    c.setTelefono(telefono);
                    c.setDireccionfiscal(dirFiscal);
                    c.setEstado(Integer.parseInt(estado));
                    
                    Distrito d = new Distrito();
                    d.setIddistrito(Integer.valueOf(idDistrito));
                    c.setDistrito(d);
                    
                    Tipocliente tc = new Tipocliente();
                    tc.setIdtipocliente(Integer.valueOf(idTipoCliente));
                    c.setTipocliente(tc);
                    
                    cli.add(c);
                }
                
            } catch (FileNotFoundException ex) {
                Logger.getLogger(LeeDatos.class.getName()).log(Level.SEVERE, null, ex);
            }
           
            
        }
        
        return cli;
    }
}
